The present invention relates generally to error correction in data communications, and more particularly to a method of dynamically setting a retransmission timer in an automatic repeat request mechanism to prevent unnecessary data transmission and delay during the error correction process.
In most digital communication systems, whenever error events occur in the transmitted messages, some action must be taken to correct these events. This action may take the form of an error correction procedure that attempts to correct these errors. In some applications where a two-way communication link exists between the sender and the receiver, the receiver may inform the sender that a message has been received in error, and, hence request a repeat of that message. In principle, the procedure may be repeated as many times as necessary until that message is received error free. An error control system in which the erroneously received messages are simply retransmitted is called an automatic repeat request (ARQ) system. One example of an automatic repeat request system is called Selective ARQ. The Selective ARQ system, or S-ARQ, functions in much the same manner as the more xe2x80x9ctraditionalxe2x80x9d ARQ systems except for the S-ARQ system only retransmits the parts of messages that are in error rather than retransmit the entire message.
In ARQ systems, the receiver must perform only an error detection procedure on the received messages without attempting to correct the errors. Hence, an error detecting code, in the form of specific redundant or parity-check symbols must be added to the information-bearing sequence. In general, as the error detecting capability of the code increases, the number of added redundant symbols must also be increased. Clearly, with such a system, an erroneously received message is delivered to the user only if the receiver fails to detect the presence of errors. Since error detection coding is simple, powerful, and quite robust, ARQ systems constitute a simple and efficient method for providing highly reliable transfer of messages from the source to the user over a variety of transmission channels. ARQ systems are therefore widely used in data communications that are highly sensitive to errors, such as in computer-to-computer communications.
Despite the wide use of ARQ systems, they are not without limitations. As previously mentioned, many data communications protocols use an Automatic Repeat Request (ARQ) mechanism for error correction. In most cases, the acknowledgment itself is also subject to error, thus requiring its own error correction mechanism. This is generally achieved via the use of a retransmission timer in the transmitter. If, after requesting an acknowledgment, it is not received within a set amount of time (the retransmission timer setting), either a new acknowledgment is requested (polling) or the data is retransmitted. The problem with many peer-to-peer communication links is the large amount of variance that the link bandwidth can experience. This variance leads to a problem in finding a suitable value for the retransmission timer. If the timer is too small then unnecessary data may be retransmitted when the acknowledgment is delayed. If it is too large then there is an increase in delay when the acknowledgment is lost. The problem of varied bandwidth is found in many schemes that retransmit data. For example, the TCP scheme commonly used today also has problem with large variances in channel bandwidth and uses a fixed exponential backoff algorithm to deal with the problem. Another common method for solving this problem involves the use of a fixed length timer. However, in many cases there is too much variability for a fixed timer scheme to work efficiently. Thus, a more effective method for improving the selection of an appropriate retransmission timer value and improving data transmission once an error occurs is needed.